package edu.tms.dao.common;

import java.util.List;
import java.util.Map;


/**
 * DAO公共接口
 * 该类所有的数据库操作使用JdbcUtil增删改查，实体类自动封装
 * @author Administrator
 * @param <T>
 *
 */
public interface CommnonDao<T> {
	/**
	 * 保存内容
	 * 调用update方法
	 * @param value
	 * @return 返回该条记录的自增长值（id）
	 * @throws Exception
	 */
	abstract public long save(T value)throws Exception;
	/**
	 * 修改内容
	 * 调用update方法
	 * @param value
	 * @return 返回该条记录的自增长值（id）
	 * @throws Exception
	 */
	abstract public int update(T value)throws Exception;
	/**
	 * 删除内容
	 * 调用update方法
	 * @param value
	 * @return 返回该条记录的自增长值（id）
	 * @throws Exception
	 */
	abstract public int delete(T value)throws Exception;
	/**
	 * 查找所有的内容
	 * 调用query方法
	 * @param pageNo 第几页
	 * @param pageSize 每页数字
	 * @return 返回查询到的实体集合
	 * @throws Exception
	 */
	abstract public List<T> findAll(int pageNo,int pageSize)throws Exception;
	
	abstract public List<T> findAll(Object key, int pageNo, int pageSize) throws Exception;
		
	/**
	 * 查找单一实体
	 * 调用uniqueValue
	 * @param Key
	 * @return 返回查询到的一个实体
	 * @throws Exception
	 */
	abstract public T findByKey(Object key)throws Exception;
	
	
	/**
	 * String 对应  数据库 列名（comment)
	 * Object 对应相应列名值
	 * 返回的是所查找的类中的数据。方便EXCEL导出
	 */
	abstract public List<Map<String,Object>> getMapList()throws Exception;
}
